package com.jdk.demo.nio.networkinterface;

import java.net.InetAddress;
import java.net.NetworkInterface;

public class NetworkInterfaceDemo2 {

	// NetworkInterface除了getNetworkInterfaces方法外，还有三个静态方法：getByIndex、getByName、getByInetAddress
	public static void main(String[] args) {
		try {
			NetworkInterface eachNetworkInterface = NetworkInterface.getByIndex(1);
			System.out.println("获得网络设备名称：" + eachNetworkInterface.getName());
			System.out.println("获得网络设备显示名称：" + eachNetworkInterface.getDisplayName()); // 设备管理器里会显示这个名称
			System.out.println("获得网络接口索引：" + eachNetworkInterface.getIndex());
		}catch (Exception e) {
			e.printStackTrace();
		}

		try {
			NetworkInterface eachNetworkInterface = NetworkInterface.getByName("lo");
			System.out.println("获得网络设备名称：" + eachNetworkInterface.getName());
			System.out.println("获得网络设备显示名称：" + eachNetworkInterface.getDisplayName()); // 设备管理器里会显示这个名称
			System.out.println("获得网络接口索引：" + eachNetworkInterface.getIndex());
		}catch (Exception e) {
			e.printStackTrace();
		}

		try {
			InetAddress localhostAddress = InetAddress.getByName("localhost");
			NetworkInterface eachNetworkInterface = NetworkInterface.getByInetAddress(localhostAddress);
			System.out.println("获得网络设备名称：" + eachNetworkInterface.getName());
			System.out.println("获得网络设备显示名称：" + eachNetworkInterface.getDisplayName()); // 设备管理器里会显示这个名称
			System.out.println("获得网络接口索引：" + eachNetworkInterface.getIndex());
		}catch (Exception e) {
			e.printStackTrace();
		}
	}

}
